package studio.negocio;

import java.text.SimpleDateFormat;
import java.util.Date;

import javax.swing.JOptionPane;

import studio.dao.ClienteDAO;
import studio.excepcion.DAOExcepcion;
import studio.modelo.Cliente;


public class SeguridadCliente {
	
	public void insertarCliente(String docid, String nom, String mail, String fecnac, String cla, int tipo, String confcla) throws DAOExcepcion {

	 Cliente modelo = new Cliente();
	 modelo.setDocIdentidad (docid);
	 modelo.setNombres(nom);
	 modelo.seteMail(mail);
	 modelo.setFechaNacimiento(fechaGrabaBaseDato(fecnac));
	 modelo.setClaveIngreso(cla);
	 modelo.setTipo(tipo);
	 modelo.setConfirmaclave(confcla);

	 if( ValidarDatos(modelo)== true )
	 {
	 if ( obtenerCliente(docid)== true)
	 {
		 if ( obtenerCliente(mail)== true)
		 {
			 if (ValidarClaves(modelo)==true  )
			 {
				 int rpta=javax.swing.JOptionPane.showConfirmDialog(null,"Desea Registrarse como Cliente","Studio 7i",JOptionPane.YES_NO_OPTION);
					if (rpta==0 )
					{
						ClienteDAO dao = new ClienteDAO();
						dao.insertar(modelo);	 
					}
			 }
			 else
			 {
				 javax.swing.JOptionPane.showMessageDialog(null, "Claves no coinciden","Studio 7i",1);		
				 System.out.println("Claves no coinciden");
			 }
		 }
		 else{
			 javax.swing.JOptionPane.showMessageDialog(null, "eMail ya registrado","Studio 7i",1);
			 System.out.println("eMail ya registrado");}
	  
	 }
	 else 
	 {
		 javax.swing.JOptionPane.showMessageDialog(null, "DNI ya registrado","Studio 7i",1);
	  System.out.println("DNI ya registrado");
	 }
	 }
	 else 
	 {
		 javax.swing.JOptionPane.showMessageDialog(null, " DNI ya registrado","Studio 7i",1);
		
	  System.out.println("Falta ingresar un dato");
	 }
	}
			
	
	 public String fechaGrabaBaseDato(String fechaN){ 
		 String devuelve="";
	        try{ 
	            if (isDate(fechaN)){ 
	                SimpleDateFormat sdfD=new SimpleDateFormat("dd/MM/yyyy"); 
	                SimpleDateFormat sdfG=new SimpleDateFormat("yyyy-MM-dd"); 
	                devuelve=sdfG.format(sdfD.parse(fechaN)); 
	            }else{ 
	                devuelve=""; 
	            } 
	        } catch(Exception e) { 
	          
	            e.printStackTrace(); 
	            System.out.println("Error : " + e); 
	        }
			return devuelve; 
	    } 

	  public boolean isDate(String fechax){ 
	        try { 
	            Date fecha = new Date(fechax); 
	        } catch(Exception e) { 
	            return false; 
	        } 

	        return true; 
	    }

	public boolean obtenerCliente(String dociden) throws DAOExcepcion{
	 ClienteDAO dao = new ClienteDAO();
	 return dao.obtenerCliente(dociden);
	}
	
	public boolean ValidarClaves(Cliente objCliente)
	{
       boolean sw=true;
       System.out.println(objCliente.getClaveIngreso() );
       System.out.println(objCliente.getConfirmaclave() );
       if (objCliente.getClaveIngreso().equals(objCliente.getConfirmaclave()))
       {
    	 sw = true;   
       }
       else
       {
    	   sw = false; 
       }
       return sw;
	}
	
	
	public boolean ValidarDatos(Cliente objCliente)
	{
		boolean sw=true;
		if (objCliente.getDocIdentidad().isEmpty()  || objCliente.getNombres().isEmpty()
				|| objCliente.getFechaNacimiento().isEmpty() || objCliente.getClaveIngreso().isEmpty()
			)
		{
			sw= false;
		}
	else
	{
		sw=true;
	}
		return sw;
	}
}
